f3kdb(clip c, int "range", int "Y", int "Cb", int "Cr", 
		int "grainY", int "grainC", int "sample_mode", int "seed", 
		bool "blur_first", bool "dynamic_grain", int "opt", bool "mt", 
		int "precision_mode", bool "keep_tv_range", int "input_mode",
		int "input_depth", int "output_mode", int "output_depth", 
		int "random_algo_ref", int "random_algo_grain",
		float "random_param_ref", float "random_param_grain")
		
由 http://www.geocities.jp/flash3kyuu/auf/banding17.zip 移植。
滤镜支持逐行YUY2、YV12、YV16、YV24及YV411。
		
range
	banding检测范围.
	
	默认；15

Y Cb Cr
	banding检测阈值。
	
	默认：1 (precision_mode = 0) /
	      64 (precision_mode > 0)
	
grainY grainC
	当sample_mode为1~2时有效，模糊后进行dither的强度。
		
	默认：1 (precision_mode = 0) /
	      64 (precision_mode > 0)
	      
sample_mode
	0：使用1个采样像素，忽略grainY及grainC
	   （已过时，未来的版本将会移除）
	1：使用2个采样像素
	2：使用4个采样像素
	
	默认：2
	
seed
	随机数种子，一般不需要设置
	
blur_first
	仅当sample_mode为1~2时有效。
	
	true： 当前像素会与所有取样像素的平均值比较，若差值低于阈值则视为banded
	false：当前像素会与各个采样像素各自比较，若所有差值皆低于阈值则视为banded
	
dynamic_grain
	动态噪声模式。
	
	默认：false
	
opt
	优化模式
	-1：使用当前CPU最高支持的优化
	0：纯C代码
	1：SSE2
	2：SSSE3
	3：SSE4.1
	
	默认为-1，一般不需要更改，i5-520m测试SSE模式比C快60%~100%（视模式而定）。
	
mt
	多线程模式。如果设为true，U及V平面会在新线程与Y平面同时处理。
	
	如用户机器有多个CPU/核心则默认启用，否则默认为禁用
	
dither_algo
	0：低精度模式（已过时，未来的版本将会删除）
	1：无dither处理，截断LSB数据
	2：Ordered dithering
	3：Floyd-Steinberg dithering
	
	* 模式3的视觉质量是最好的，但是x264编码后很容易会变成玻璃渣，要达到最佳效果需要仔细调节x264参数。
	* 模式1及2的效果略差，但比较容易用较低的码率编码，某些情况下可能会比模式3更好。
	
	说明：
	#1 该参数仅在sample_mode > 0时有效，sample_mode = 0时设置该参数会出错。
	#2 不推荐模式0（除非sample_mode为0）。
	#3 要达到同等强度，高精度模式的阈值及dither设置值为低精度模式下的64倍。
	#4 当output_depth = 16时，此参数会被忽略
	#5 10bit x264命令行范例：
	   avs2yuv -raw "script.avs" -o - | x264-10bit --demuxer raw --input-depth 16 --input-res 1280x720 --fps 24 --output "out.mp4" -
	   
	   或使用添加过hack（ https://gist.github.com/1117711 ）的x264编译版：
	   x264-10bit --input-depth 16 --output "out.mp4" script.avs
	
	默认值：0 (sample_mode = 0) / 3 (sample_mode > 0)
	
keep_tv_range
	如设置为true，所有处理后的像素会被裁剪到TV range 
	(luma：16 ~ 235, chroma：16 ~ 240)。
	
	如果视频源是TV range，推荐设置为true，因为dither后的像素有可能会超出范围。
	
	如果视频源是full-range，*不要*设置此参数为true，否则所有超出TV range的像素会被裁剪。
	
	默认值：false
	
input_mode
	指定输入视频模式。
	
	0：标准8bit视频
	1：9 ~ 16 bit 高位深视频, 层叠格式
	2：9 ~ 16 bit 高位深视频, 交织格式
	
	默认值：0 (input_depth = 8或未指定) / 1 (input_depth > 8)
	
input_depth
	指定源视频位深。
	
	范围：8 ~ 16
	默认值：8 (input_mode = 0或未指定) / 16 (input_mode = 1 / 2)
	
output_mode
	指定输出视频模式。参数值意义同input_mode。
	
	仅当 dither_algo = 1 / 2 / 3 时可用。
	
	当 dither_algo = 0，output_mode会自动设定为0且不能被更改。
	
	* 当output_mode = 2时，脚本预览时会显示为花屏且宽度会变为原来的两倍，此为正常现象，使用高位深x264正确压制后即会恢复正常。
	
	默认值：0 (output_depth = 8或未指定) / 1 (output_depth > 8)
	
output_depth
	指定输出视频位深。
	
	仅当 precision_mode = 1 / 2 / 3 时可用。 
	
	如为16，则不会应用precision_mode指定的dither算法。
	
	范围：8 ~ 16
	默认值：8 (output_mode = 0或未指定) / 16 (output_mode = 1 / 2)
	
random_algo_ref / random_algo_grain
	选择参考像素位置/dither噪声的随机数生成算法。
	
	0：旧版滤镜算法
	1：均匀分布
	2：高斯分布 （标准差可通过random_param_ref / random_param_grain设置，只使用[-1.0, 1.0]范围内的原始值进行后续计算，超出范围的值会被忽略）
	
	默认值：1 / 1

random_param_ref / random_param_grain
	随机数生成算法的参数。目前只对高斯分布有效。
	
	默认值：1.0
	
--------------------------------------------------------------------------------

f3kdb_dither(clip c, int "mode", bool "stacked", int "input_depth", 
             bool "keep_tv_range")

使用flash3kyuu_deband的dither算法把高位深视频转换为正常的8bit视频。

支持的颜色空间与flash3kyuu_deband相同。

需求支持SSE2的CPU (Pentium 4 / AMD K8 或更新)

mode
	0：Ordered dithering
	1：Floyd-Steinberg dithering
	
	默认值：1
	
stacked
	true：源数据为层叠格式 
		  (即 flash3kyuu_deband output_mode = 1 的输出格式)
	false：源数据为交织格式 
		  (即 flash3kyuu_deband output_mode = 2 的输出格式)
		  
	默认值：true
	
input_depth
	指定输入数据位深
	
	默认值：16
	有效范围：9 ~ 16
	
keep_tv_range
	请参考flash3kyuu_deband的同名参数
	
	默认值：false
	
--------------------------------------------------------------------------------

更新日志
1.5.1 (2012-04-07)
	 可设置高斯随机数生成器的标准差

1.5.0 (2012-03-12)
	（此版本无新功能，只修改了部分参数以减少混淆）
	ditherY/ditherC改名为grainY/grainC
	dynamic_dither_noise改名为dynamic_grain
	precision_mode改名为dither_algo，并移除模式4及5
	random_algo_dither改名为random_algo_grain
	移除enable_fast_skip_plane，此优化会在符合条件时自动启用（滤镜处理结果不会受此影响）
	
1.4.2 (2011-11-10)
	修复某些非mod16视频的崩溃问题

1.4.1 (2011-11-05)
	修复YUY2支持
	改进位深相关参数的默认值处理
	precision_mode 4 / 5已过时，并可能会在新的版本中移除，请改用output_mode 1 / 2以得到同样效果
	
1.4.0 (2011-10-30)
	9 ~ 16位深输入/输出
		相关参数：input_mode/input_depth/output_mode/output_depth
	新的随机数生成器，参考像素位置及噪声可以为均匀分布或高斯分布
		相关参数：random_algo_ref / random_algo_dither
	diff_seed已被dynamic_dither_noise取代，启用时每帧的噪声模式会变化
	另一个新参数：enable_fast_skip_plane
	新增滤镜短名：f3kdb
	新的ICC编译版理论上可在SSE2前的CPU上运行（未测试）
	少量Bug修复

1.3.0 (2011-09-07)
	新增x64版本
	新增降色深滤镜：f3kdb_dither
	内部处理精度提升至16bit
	新增参数：keep_tv_range，具体说明请参考readme.zh.txt
	修改sample_mode的默认值到2
	Bug修复：Floyd-Steinberg dither用于full-range视频时，结果可能会有错误
	Bug修复：错误的YUY2 debanding
	少量优化
  
1.2.0 (2011-08-01)
	新增支持YUY2（未优化）
	新增支持AviSynth 2.6中新的平面YUV格式
	滤镜现在同时支持AviSynth 2.5及2.6
	16bit输出（precision_mode = 4/5）

	（目前内部处理精度仍然为14bit，未来的版本会改进）

1.1.0 (2011-06-18)
	修复在高精度模式下高阈值造成的错误
	更改阈值效果以增加可调节性，同一个阈值在新版中的效果会变弱
	SSE优化高精度模式
	对某些无效参数组合直接提示错误

1.0.2 (2011-06-06)
	高精度处理模式（目前未进行优化，将会下一个版本添加）
	正确处理帧边缘
	修正某些情况下的崩溃
	其它bug修复

1.0.1 (2011-05-27)
	多线程处理
	不处理阈值为0的平面
	
1.0.0 (2011-05-21)
	修复大量Bug
	新增SSE优化，速度大幅提升，i5-520m默认参数可以达到24fps以上

0.9.1 (2011-05-05)
	修正：当blur_first=false时，处理结果会出错

0.9 (2011-05-04)
	原始发布版

--------------------------------------------------------------------------------

Web:
http://forum.doom9.org/showthread.php?t=161411
http://www.nmm-hd.org/newbbs/viewtopic.php?f=7&t=239

Acknowledgment:
flash3kyuu (http://www.geocities.jp/flash3kyuu/)

Source code:
https://github.com/SAPikachu/flash3kyuu_deband

Copyleft 2011 SAPikachu (sapikachu@gmail.com, http://www.sapikachu.net)
